package com.chenchao.javabase;

/**
 * @coding : utf-8
 * @Time : 2020/11/6 12:33
 * @Author : chenchao
 * @File : com.chenchao.javabase.java类型转换.java
 * @Software: IntelliJ IDEA
 */
public class java类型转换 {
    public static void main(String[] args) {
        int i=128;
        byte b= (byte) i;//低到高强制转换
        double d=i;//高到低自动转换
        System.out.println(i);//128
        System.out.println(b);//-128
        //Byte最大值是127，强制转换会溢出
        System.out.println(d);//128.0
        char c='a';
        int i1=c+1;//自动转换
        System.out.println(i1);//98
        /*
         1.不能转换boolean
         2.不能转换不相干的类
         3.高到低自动转换，低到高强制转换
         4.转换存在内存溢出与精度问题
        */

        //操作大数时溢出问题
        //jdk7开始可以用下滑线分割数字
        int i2=10_0000_0000;
        int year=20;
        long total=(long)(year*i2);//转换之前就int溢出
        System.out.println(total);//-1474836480溢出
        long total2=(long)year*i2;//先转换一个数成long
        System.out.println(total2);//20000000000溢出



    }
}
